A number of devices currently exist for playing ad-supported video, which is a video file that includes principal content downloaded or streamed from an external source such as a server, and, when viewed, has secondary content (e.g., video advertisements) spliced into the principal content. The ads may be inserted either at ingestion time or automatically by a player during playback. The former is referred to as “static,” while the latter is “dynamic.” Ingestion is the process of receiving a video from a studio or production facility and encoding, packaging or otherwise preparing it for digital distribution. During playback, a video player may detect that a video is either static or dynamic ad-supported content by, for example, looking for key attributes in the file header. In the case of dynamic ad based content, the file header may contain some number of markers that indicate where the ads should be spliced in. This is typically done at the same point that a television broadcaster would insert a commercial, and usually defined by the studio that produced the video.
Most Internet broadcasts that include dynamic advertising segment the principal content in order to create a playlist of items, some of which are the video and some of which are ads. An example playlist might be as follows:
1. Chapter 1 (0:00:00 to 0:05:00)
2. Ad 1
3. Ad 2
4. Chapter 2 (0:05:00 to 0:13:00)
5. Ad 3
6. Ad 4
7. Chapter 3 (0:13:00 to 0:19:00)
8. Ad 5
9. Ad 6
10. Chapter 4 (0:19:00 to 0:22:00)
One problem related to conventional broadcasts is that, after completing playing of one of the principal content items (e.g., Chapter 1), there is typically a pause or latency period during which the next secondary content item (e.g., Ad 1) is processed for playing. Other pause or latency periods may then occur during which the subsequent secondary content item (e.g., Ad 2) and the subsequent primary content item (e.g., Chapter 2) are processed for playing. Another problem is that, when reversing the primary content from a point in a subsequent content item (e.g., Chapter 2) to a point in a previous content item (e.g., Chapter 1), there is typically a pause or latency period during which the previous primary content item is re-processed for re-play.